package com.hilinos.gb.gb28181.repository;


import java.util.List;

import com.hilinos.gb.gb28181.repository.mysql.mapper.po.Device;

public interface IDeviceRepository {
    /**
     * 根据设备ID判断设备是否存在
     *
     * @param deviceId 设备ID
     * @return true:存在  false：不存在
     */
    boolean exists(String deviceId);

    /**
     * 视频设备创建
     *
     * @param deviceVo 设备对象
     * @return true：创建成功  false：创建失败
     */
    boolean create(Device deviceVo);

    /**
     * 视频设备更新
     *
     * @param deviceVo 设备对象
     * @return true：创建成功  false：创建失败
     */
    boolean update(Device deviceVo);

    /**
     * 获取设备
     *
     * @param deviceId 设备ID
     * @return DShadow 设备对象
     */
    Device queryVideoDevice(String deviceId);

    /**
     * 获取设备
     *
     * @return 返回在线设备列表
     */
    List<Device> queryOnlineDevice();

    /**
     * 获取多个设备
     *
     * @param deviceIds 设备ID数组
     * @return List<Device> 设备对象数组
     */
    List<Device> queryVideoDeviceList(String[] deviceIds);

    /**
     * 删除设备
     *
     * @param deviceId 设备ID
     * @return true：删除成功  false：删除失败
     */
    boolean delete(String deviceId);

    /**
     * 更新设备在线
     *
     * @param deviceIds 设备ID列表
     * @return true：更新成功  false：更新失败
     */
    boolean onlines(List<String> deviceIds);

    /**
     * 更新设备离线
     *
     * @param deviceIds 设备ID列表
     * @return true：更新成功  false：更新失败
     */
    boolean outlines(List<String> deviceIds);
}
